सी में बिटवाइज़ ऑपरेटर
बिटवाइज ऑपरेटर बिट-लेवल पर डेटा पर संचालन करने के लिए उपयोग किए जाने वाले ऑपरेटर हैं। जब हम बिटवाइज ऑपरेशन करते हैं, तो इसे बिट-लेवल प्रोग्रामिंग के रूप में भी जाना जाता है। इसमें दो अंक होते हैं, या तो 0 या 1। यह मुख्य रूप से गणना को तेजी से बनाने के लिए संख्यात्मक संगणना में उपयोग किया जाता है। हमारे पास सी प्रोग्रामिंग भाषा में विभिन्न प्रकार के बिटवाइज ऑपरेटर हैं। निम्नलिखित बिटवाइज ऑपरेटरों की सूची है:
प्रचालक का अर्थ & बिटवाइज़ और ऑपरेटर | बिटवाइज या ऑपरेटर ^ बिटवाइज एक्सक्लूसिव या ऑपरेटर ~ किसी के पूरक ऑपरेटर (unary ऑपरेटर) << लेफ्ट शिफ्ट ऑपरेटर >> राइट शिफ्ट ऑपरेटर
आइए बिटवाइज ऑपरेटरों की सत्य तालिका को देखें।
X y x & y x | y x^y 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1
बिटवाइज और ऑपरेटर
बिटवाइज और ऑपरेटर को सिंगल एम्परसैंड साइन (और) द्वारा निरूपित किया गया है। दो पूर्णांक ऑपरेंड (और) ऑपरेटर के दोनों किनारों पर लिखे गए हैं। यदि दोनों ऑपरेंड के संबंधित बिट्स 1 हैं, तो बिटवाइज और ऑपरेशन का आउटपुट 1 है; अन्यथा, आउटपुट 0 होगा।
hma paasaRhaenaa Dae car P AaIr bai.
P =6;
bai=4;
vDiAaoaari pzatainaioaitva ka Ufpar Dae car hIM DiyaaRgayaa naicae:
P = 0110
bai = 0100
kba hma AavaeDnaRkrnaa baiTvaaEja AaIr saMcaalana maeM Ufpar Dae car, maIM.EZTi., P&bai, AaUTpauT caaheMgae haenaa:
parinaama = 0100
जैसा कि हम उपरोक्त परिणाम से देख सकते हैं कि दोनों चर के बिट्स की तुलना एक -एक करके की जाती है। यदि दोनों चर का बिट 1 है तो आउटपुट 1 होगा, अन्यथा 0। चलो कार्यक्रम के माध्यम से बिटवाइज और ऑपरेटर को समझते हैं।
#samaahitaF <PsaTidiAayaAae.Pca>
paunaZ mauqyaF()
{
paunaZ P=6, bai=14; // car oaaeSanaaAaeM
mauDznama(" AaUTpauT ka baiTvaaEja AaIr saMcaalak a&b hI %paunaZ",P&bai);
naivaZtanama 0;
}
उपरोक्त कोड में, हमने दो चर बनाए हैं, अर्थात्, 'ए' और 'बी'। 'ए' और 'बी' के मूल्य क्रमशः 6 और 14 हैं। 'ए' और 'बी' का द्विआधारी मूल्य क्रमशः 0110 और 1110 है। जब हम इन दो चर के बीच और ऑपरेटर को लागू करते हैं,
बिटवाइज या ऑपरेटर
बिटवाइज या ऑपरेटर को एक एकल ऊर्ध्वाधर संकेत (|) द्वारा दर्शाया गया है। दो पूर्णांक ऑपरेंड (|) प्रतीक के दोनों किनारों पर लिखे गए हैं। यदि किसी भी ऑपरेंड का बिट मान 1 है, तो आउटपुट 1 होगा, अन्यथा 0।
उदाहरण
hma vaicaarRkrnaa Dae car,
P = 23;
bai = 10;
vDiAaoaari pzatainaioaitva ka Ufpar Dae car caaheMgae haenaa:
P = 0001 0111
bai = 0000 1010
kba hma AavaeDnaRkrnaa baiTvaaEja yaa saMcaalak maeM Ufpar Dae car, maIM.EZTi., P|bai , taba AaUTpauT caaheMgae haenaa:
parinaama = 0001 1111
जैसा कि हम उपरोक्त परिणाम से देख सकते हैं कि दोनों ऑपरेंड के बिट्स की तुलना एक -एक करके की जाती है; यदि बिट का मान 1 है, तो आउटपुट 1 अन्यथा 0 होगा।
उदाहरण
#samaahitaF <PsaTidiAayaAae.Pca>
paunaZ mauqyaF()
{
paunaZ P=23,bai=10; // car oaaeSanaaAaeM
mauDznama(" AaUTpauT ka baiTvaaEja yaa saMcaalak a|b hI %paunaZ",P|bai);
naivaZtanama 0;
}
बिटवाइज एक्सक्लूसिव या ऑपरेटर
बिटवाइज एक्सक्लूसिव या ऑपरेटर को (^) प्रतीक द्वारा निरूपित किया जाता है। अनन्य या ऑपरेटर के दोनों किनारों पर दो ऑपरेंड लिखे गए हैं। यदि किसी भी ऑपरेंड के संबंधित बिट 1 है तो आउटपुट 1 होगा, अन्यथा 0।
हम दो चर ए और बी पर विचार करते हैं, ए = 12; बी = 10; उपरोक्त दो चर का द्विआधारी प्रतिनिधित्व होगा: ए = 0000 1100 b = 0000 1010 जब हम उपरोक्त दो चर (ए^बी) में बिटवाइज एक्सक्लूसिव या ऑपरेटर लागू करते हैं, तो परिणाम होगा: परिणाम = 0000 1110
जैसा कि हम उपरोक्त परिणाम से देख सकते हैं कि दोनों ऑपरेंड के बिट्स की तुलना एक -एक करके की जाती है; यदि किसी भी ऑपरेंड का संबंधित बिट मान 1 है, तो आउटपुट 1 अन्यथा 0 होगा।
उदाहरण
#samaahitaF <PsaTidiAayaAae.Pca>
paunaZ mauqyaF()
{
paunaZ P=12,bai=10; // car oaaeSanaaAaeM
mauDznama(" AaUTpauT ka baiTvaaEja Ananya yaa saMcaalak a^b hI %paunaZ",P^bai);
naivaZtanama 0;
}
बिटवाइज पूरक ऑपरेटर
बिटवाइज पूरक ऑपरेटर को किसी के पूरक ऑपरेटर के रूप में भी जाना जाता है। यह प्रतीक tilde (~) द्वारा दर्शाया गया है। यह केवल एक ऑपरेंड या चर लेता है और एक ऑपरेंड पर पूरक संचालन करता है। जब हम किसी भी बिट पर पूरक ऑपरेशन लागू करते हैं, तो 0 1 हो जाता है और 1 0 हो जाता है।
उदाहरण
Agar hma paasaRhaenaa P car naama 'P',
P = 8;
vDiAaoaari pzatainaioaitva ka Ufpar car hI DiyaaRgayaa naicae:
P = 1000
kba hma AavaeDnaRkrnaa baiTvaaEja paurk saMcaalak kae AaepaerMd, taba AaUTpauT caaheMgae haenaa:
parinaama = 0111
जैसा कि हम उपरोक्त परिणाम से देख सकते हैं कि यदि बिट 1 है, तो यह 0 और 1 में बदल जाता है।
उदाहरण
#samaahitaF <PsaTidiAayaAae.Pca>
paunaZ mauqyaF()
{
paunaZ P=8; // car oaaeSanaaAaeM
mauDznama(" AaUTpauT ka baiTvaaEja paurk saMcaalak ~a hI %paunaZ",~P);
naivaZtanama 0;
}
बिटवाइज शिफ्ट ऑपरेटर
सी प्रोग्रामिंग में दो प्रकार के बिटवाइज शिफ्ट ऑपरेटर मौजूद हैं। बिटवाइज़ शिफ्ट ऑपरेटर बिट्स को या तो बाईं ओर या दाएं-तरफ शिफ्ट करेंगे। इसलिए, हम कह सकते हैं कि बिटवाइज शिफ्ट ऑपरेटर को दो श्रेणियों में विभाजित किया गया है: वाम-शिफ्ट ऑपरेटर अधिकार-शिफ्ट ऑपरेटर
वाम-शिफ्ट ऑपरेटर
वाम-शिफ्ट ऑपरेटर
यह एक ऑपरेटर है जो बिट्स की संख्या को बाईं ओर ले जाता है।
कैसे लिखें
संचालक << n
#samaahitaF <PsaTidiAayaAae.Pca>
paunaZ mauqyaF()
{
paunaZ P=5; // car pzaarMBa
mauDznama(" kimata ka a<<2 hI : %paunaZ ", P<<2);
naivaZtanama 0;
}
#samaahitaF <PsaTidiAayaAae.Pca>
paunaZ mauqyaF()
{
paunaZ P=7; // car pzaarMBa
mauDznama(" kimata ka a>>2 hI : %paunaZ ", P>>2);
naivaZtanama 0;
}